Expand description
Usage:
fn main() {
puffin::set_scopes_on(true); // you may want to control this with a flag
// game loop
loop {
puffin::GlobalProfiler::lock().new_frame();
{
puffin::profile_scope!("slow_code");
slow_code();
}
}
}
Macros
Returns a shortened path to the current file.
Returns the name of the calling function without a long module path prefix.
Automatically name the profiling scope based on function name.
Profile the current scope with the given name (unique in the parent scope).
Structs
One frame worth of profile data, collected from many sources.
Meta-information about a frame.
Identifies a specific FrameSink
when added to GlobalProfiler
.
A view of recent and slowest frames, used by GUIs.
Automatically connects to crate::GlobalProfiler
.
Singleton. Collects profiling data from multiple threads
and passes them on to different FrameSink
s.
A scope that has been merged from many different sources
Created by the puffin::profile*!(...)
macros.
Used when parsing a Stream.
Used when parsing a Stream.
Stream of profiling events from one thread.
A Stream
plus some info about it.
A reference to the contents of a StreamInfo
.
Used to identify one source of profiling data.
Collects profiling data for one thread
One frame worth of profile data, collected from many sources.
Enums
Functions
Are the profiler scope macros turned on?
This is false
by default.
Report a stream of profile data from a thread to the GlobalProfiler
singleton.
For the given thread, merge all scopes with the same id path.
Returns a high-precision, monotonically increasing nanosecond count since unix epoch.
Select the slowest frames, up to a certain count.
Turn on/off the profiler macros (profile_function
, profile_scope
etc).
When off, these calls take only 1-2 ns to call (100x faster).
This is false
by default.
Type Definitions
Add these to GlobalProfiler
with GlobalProfiler::add_sink()
.
All times are expressed as integer nanoseconds since some event.